package com.alax.interfaces.service;

import com.alax.interfaces.domain.ApiCallRequest;
import com.alax.common.core.domain.AjaxResult;

public interface IApiCallService {
    /**
     * 调用API接口
     * 
     * @param request API调用请求
     * @return 调用结果
     */
    AjaxResult callApi(ApiCallRequest request);
    
    /**
     * 检查API调用权限
     * 
     * @param apiId API ID
     * @param userId 用户ID
     * @return true:有权限 false:无权限
     */
    boolean checkApiPermission(Long apiId, Long userId);
    
    /**
     * 检查API调用次数限制
     * 
     * @param apiId API ID
     * @param userId 用户ID
     * @return true:未超限 false:已超限
     */
    boolean checkCallLimit(Long apiId, Long userId);
    
    /**
     * 检查API的QPS限制
     * 
     * @param apiId API ID
     * @return true:未超限 false:已超限
     */
    boolean checkQpsLimit(Long apiId);
}
